home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Process / Expand / realize-class < prev   
Text File  |  1998-10-23  |  2KB  |  60 lines

  1. realize-class
  2.  
  3. realize-class expands the class definitions and appends them together, and performs instrument definitions. If you want just to return the expanded classes you may do that with expand-class function.
  4.  
  5. In the following :all classes are realized and instruments instr1..instr4 created. Instead of :all you may specify a list of classes you want to realize, for example '(zone tonality symbol velocity length program). The sections are given as a list of section names used in class definitions.
  6.  
  7. (realize-class :all
  8.    instr1 '(intro part1 part2 part3 part4 coda)
  9.    instr2 '(intro part1 part2 part3 part4 coda)
  10.    instr3 '(intro part1 part2 part3 part4 coda)
  11.    instr4 '(intro part1 part2 part3 part4 coda)
  12. )
  13.  
  14. If you are using the Class System to build up composition structures, the composition structure can be defined at the beginning of the composition with def-grammar, for example:
  15.  
  16. (def-grammar 'structure
  17.    fugue (intro variations coda)
  18.    variations (part1 part2 part3 part4)
  19. )
  20.  
  21. This grammar is expanded into a linear structure with expand-grammar.
  22.  
  23. (expand-grammar fugue 2 'structure)
  24. --> (intro part1 part2 part3 part4 coda)
  25.  
  26. You can now realize the classes by: 
  27.  
  28. (realize-class :all
  29.    instr1 (expand-grammar fugue 2 'structure)
  30.    instr2 (expand-grammar fugue 2 'structure)
  31.    instr3 (expand-grammar fugue 2 'structure)
  32.    instr4 (expand-grammar fugue 2 'structure)
  33. )
  34.  
  35. After class realization you may still define instrument parameters for example to set up the gobal program and channel values.
  36.  
  37. (def-channel
  38.    instr1 1
  39.    instr2 2
  40.    instr3 3
  41.    instr4 4
  42. )
  43.  
  44. (def-program gm-sound-set
  45.    instr1 clavi
  46.    instr2 lead-1-square
  47.    instr3 clavi
  48.    instr4 lead-1-square
  49. )
  50.  
  51. And then, compile all the instruments using the compile-instrument.
  52.  
  53. (compile-instrument "ccl;output:" "fugue"
  54.    instr1
  55.    instr2
  56.    instr3
  57.    instr4
  58. )
  59.  
  60.